home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / etc / init.d / udev < prev    next >
Encoding:
Text File  |  2007-04-10  |  2.5 KB  |  112 lines

  1. #!/bin/sh -e
  2. # init script for udev
  3.  
  4. # Check the package is still installed
  5. [ -x /sbin/udevd ] || exit 0
  6.  
  7. # Get LSB functions
  8. . /lib/lsb/init-functions
  9. . /etc/default/rcS
  10.  
  11.  
  12. case "$1" in
  13.     start)
  14.     # We need the uevent support introduced in 2.6.15, bail out if we
  15.     # don't have it and fall back to a static /dev
  16.     if [ ! -f /sys/class/mem/null/uevent ]; then
  17.         if mountpoint -q /dev; then
  18.         # uh-oh, initramfs made some kind of /dev, get rid of it
  19.         umount -l /dev/.static/dev
  20.         umount -l /dev
  21.         fi
  22.         exit 1
  23.     fi
  24.  
  25.     if ! mountpoint -q /dev; then
  26.         # initramfs didn't mount /dev, so we'll need to do that
  27.         mount -n --bind /dev /etc/udev
  28.         mount -n -t tmpfs -o mode=0755 udev /dev
  29.         mkdir -m 0700 -p /dev/.static/dev
  30.         mount -n --move /etc/udev /dev/.static/dev
  31.     fi
  32.  
  33.     # Copy over default device tree
  34.     cp -a -f /lib/udev/devices/* /dev
  35.  
  36.     # It's all over netlink now
  37.     if [ -e /proc/sys/kernel/hotplug ]; then
  38.         echo "" > /proc/sys/kernel/hotplug
  39.     fi
  40.     
  41.     # Start udevd
  42.     log_begin_msg "Starting kernel event manager..."
  43.     if start-stop-daemon --start --quiet --exec /sbin/udevd -- --daemon; then
  44.         log_end_msg 0
  45.     else
  46.         log_end_msg $?
  47.     fi
  48.  
  49.     # This next bit can take a while
  50.     if type usplash_write >/dev/null 2>&1; then
  51.         usplash_write "TIMEOUT 360" ||:
  52.         trap "usplash_write 'TIMEOUT 15' ||:" 0
  53.     fi
  54.  
  55.     # Log things that udevtrigger does (won't work on seb's machine)
  56.     if [ -x /usr/sbin/udevmonitor ]; then
  57.         /usr/sbin/udevmonitor -e >/dev/.udev.log &
  58.         UDEV_MONITOR_PID=$!
  59.     fi
  60.  
  61.     # Fix permissions and missing symlinks/programs for devices made in
  62.     # initramfs, and catch up on everything we missed
  63.     log_begin_msg "Loading hardware drivers..."
  64.     /sbin/udevtrigger
  65.     if /sbin/udevsettle; then
  66.         log_end_msg 0
  67.     else
  68.         log_end_msg $?
  69.     fi
  70.  
  71.     # Kill the udevmonitor again
  72.     if [ -n "$UDEV_MONITOR_PID" ]; then
  73.         kill $UDEV_MONITOR_PID
  74.     fi
  75.     ;;
  76.     stop)
  77.     log_begin_msg "Stopping kernel event manager..."
  78.     if start-stop-daemon --stop --quiet --oknodo --exec /sbin/udevd; then
  79.         log_end_msg 0
  80.     else
  81.         log_end_msg $?
  82.     fi
  83.     umount -l /dev/.static/dev
  84.     umount -l /dev
  85.     ;;
  86.     restart)
  87.     cp -au /lib/udev/devices/* /dev
  88.  
  89.     log_begin_msg "Loading additional hardware drivers..."
  90.     /sbin/udevtrigger
  91.     if /sbin/udevsettle; then
  92.         log_end_msg 0
  93.     else
  94.         log_end_msg $?
  95.     fi
  96.     ;;
  97.     reload|force-reload)
  98.     log_begin_msg "Reloading kernel event manager..."
  99.     if start-stop-daemon --stop --signal 1 --exec /sbin/udevd; then
  100.         log_end_msg 0
  101.     else
  102.         log_end_msg $?
  103.     fi
  104.     ;;
  105. *)
  106.     echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload}"
  107.     exit 1
  108.     ;;
  109. esac
  110.  
  111. exit 0
  112.